const Redis = require('ioredis');

// 创建一个client连接到了我们的redis server
const redis = new Redis({
    host: 'localhost', // Redis服务器的主机地址
    port: 6379, // Redis服务器的端口号
    password: 'password', //（可选）Redis服务器的密码
    db: 0 //（可选）选择指定的数据库，默认连接到"0"号数据库
});

redis.on('error', err => {
	if (err) {
	  console.log('Redis链接错误');
	  console.log(err);
	  redis.quit() // 链接失败退出链接
	}
  })
  
  redis.on('ready', () => {
	console.log('Redis链接成功');
  })

  // 设置键名为"name"的值为"John"
redis.set('name', 'John');

// 获取键名为"name"的值
redis.get('name', (err, result) => {
    console.log("get ==", result); // 输出：John
});

  
// 哈希表, 用户表
redis.hmset("00015_redis_class_user", {
	uname: "blake",
	upwd: "123456",
	uemail: "1332222@qq.com",	
}, function(err) {

});


redis.hgetall("00015_redis_class_user", function(err, data) {
	if (err) {
		return;
	}

	console.log("============hgetall ========== ",data);
});

redis.hget("00015_redis_class_user", "uname", function(err, data) {
	if (err) {
		return;
	}
	console.log("======hget========",data);
});

// 列表,数组
redis.lpush("0000_1111_7777_data", "xiaohong");
redis.rpush("0000_1111_7777_data", "xiaotian");
redis.lpush("0000_1111_7777_data", "huangdong");
redis.lpush("0000_1111_7777_data", "blake");

redis.lrange("0000_1111_7777_data", 0, 10, function(err, data) {
	if (err) {
		return;
	}

	console.log("=========lrange========", data);
});


redis.lpop("0000_1111_7777_data", function(err, data) {
	if (err) {
		return;
	}
	console.log(data);
});

redis.zrange("0000_1111_rank", 0, 10, function(err, data) {
	if (err) {
		return;
	}
	console.log(data);
});
// end 


// 事件
// 监听我们的error事件, 当有错误的时候，不会终止我们的node.js程序
// 如果链接服务器不上，我们会触发自动重连
redis.on("error", function(err) {
	console.log(err);
});

redis.on("end", function() {
	
});

redis.quit();